package licode.unisop.oidc.auth.modal;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;

/**
 * 授权上下文信息
 *
 * @author licode
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class AuthorContext implements Serializable {
    private static final long serialVersionUID = 5683528902451981256L;

    /**
     * SSO会话令牌
     */
    private String st;

    /**
     * 授权范围
     */
    private String sc;

    /**
     * Refresh-Token 值
     */
    private String rt;

    /**
     * 登录类型
     */
    private String lt;

    /**
     * 登录的用户ID
     */
    private String uid;

    /**
     * 登录IP
     */
    private String pip;

    /**
     * 登录用户账号
     */
    private String ac;

    /**
     * 登录的方式
     */
    private String at;

    /**
     * 登录的角色
     */
    private String rc;

    /**
     * 登录的角色名称
     */
    private String rn;

    /**
     * 领域ID
     */
    private String rid;

    /**
     * 客户端标识
     */
    private String cid;

    /**
     * 平台ID
     */
    private String pid;

    /**
     * 租户ID（业务用户）
     */
    private String tid;

    /**
     * 终端类型（比如WEB、APP、小程序等）
     */
    private String ter;

    /**
     * 访问令牌的超时时间（单位：秒）
     */
    private Long ae;

    /**
     * 刷新令牌的超时时间（单位：秒）
     */
    private Long re;

    /**
     * 会话超时时间
     */
    private long act;

    private Long lrt;

    public String calcLoginId() {
        return this.rid + "_" + uid;
    }

    public void setUid(String uid) {
        this.uid = uid;
    }
}
